#include<iostream>
#include<vector>
#include<map>
#include<algorithm>
using namespace std;

void solve(){
	int n;
	cin>>n;
	vector<int> a(n);
//	map<int,int> mp;
	for(int i=0;i<n;i++){
		cin>>a[i];
	}
	int tmp=a[0];
	for(int i=1;i<n;i++){
		tmp=__gcd(tmp,a[i]);
	}
	int pos=-100; 
	for(int i=0;i<n;i++){
		if(a[i]!=tmp){
			pos=i;
			break;
		}
	}
	if(pos==-100)cout<<"NO";
	else{
		cout<<"YES"<<endl;
		vector<int> ans(n,2);
		ans[pos]=1;
		for(auto x:ans)cout<<x<<" "; 
	}
}

int main(){
	int t;
	cin>>t;
	while(t--){
		solve();
		cout<<endl; 
	}
	return 0;
} 
